МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
/
Звіт
до лабораторної роботи №5
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Метод Ньютона для розв’язування систем нелінійних рівнянь»
Модифікований метод Нютона
ЛЬВІВ 2016
Мета роботи - ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона.
Модифікований метод Ньютона
При використанні стандартного методу Ньютона на кожній ітерації доводиться обчислювати новий якобіан , хоч зрозуміло, що при закінченні ітерацій він повинен прийняти стабільне значення , де –розв'язок. У модифікованому або спрощеному методі Ньютона якобіан заміняють правильно підібраною матрицею А. Звичайно, найкращим, але практично недосяжним варіантом була б заміна , де - розв'язок.
Але на практиці користуються компромісним рішенням:
– вибирають за А якобіан в початковій точці , a ітерації проводять за наступною формулою
– зберігають А протягом певного числа ітерацій;
– на певній r-й ітерації змінюють А, прирівнюючи її якобіану і з новим значенням знову виконують певне число ітерацій і т.д.
Отже, якобіан обчислюється тільки час від часу, за рахунок чого досягається економія машинного часу. Однак, збіжність методу при цьому близька до лінійної.
Завдання до лабораторної роботи
Розв’яжіть систему нелінійних рівнянь одним із методів, вказаних викладачем, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою .
3)
Блок-схема алгоритму програми
Блок-схема алгоритму метода f()
початок
1
i==0 || i==1
2
так
f(x)
3
f(x)
кінець
f(x) = x1 - x1 / (x1 * x1 + x2 * x2) + 0.4
f(x) = x2 - x2 / (x1 * x1 + x2 * x2) + 1.4
Блок-схема алгоритму метода derivative()
/
f(x) = (f(x1 + h, x2,i) - f(x1, x2,i)) / h
f(x) = (f(x1, x2 + h,i) - f(x1, x2,i)) / h
Блок-схема алгоритму метода solve()
початок
1
a := Poxidna()
2
d:= f(x)
3
dx1:=f(x)
dx2:=f(x)
4
x:=x1 y:=x2
x1=x1+dx
x2=x2+dx2
5
del:=(x1-x)/x
6
|del|>h
ні
x1,x2,f1,f2
кінець
f(x) = a[0] * a[3] - a[1] * a[2]
f(x) = (-f(x1, x2, 1) * a[3] - (-f(x1, x2, 2) * a[1])) / d;
f(x) = (-f(x1, x2, 2) * a[0] - (-f(x1, x2, 1) * a[2])) / d;
...